var fs = require('fs');

function afficherVolumeHoraire(icalendar){
	var nombreEvenements = 0;
	var volumeHoraire 	 = {heures:0, minutes:0};
	
	fs.readFile(icalendar, 'utf8', function (err,data) {
	  	if (err) {
			return console.log(err);
	  	}
	  
	  	if(data.length >= 10){
			//on decoupe le fichier dans un tableau
			var lignes = data.split("\n");
			//on parcourt le fichier tant que l'on ne trouve pas le end:vcalendar ou que le fichier est fini
			for(var i = 0, nbLignes = lignes.length; i < nbLignes && lignes[i] != "END:VCALENDAR"; i++ ){
			  	//on lit le VEVENT
			  	if(lignes[i] == "BEGIN:VEVENT"){
			  		//on saute une ligne pour atteindre le premier element du VEVENT
			  		i++;
			  		nombreEvenements++;
			  		
			  		var ligneDebut = "";
			  		var ligneFin = "";
			  		//on parcourt le VEVENT
			  		while(lignes[i] != "END:VEVENT"){
			  			//on verifie si la ligne commence par DTSTART ou DTEND
			  			if(lignes[i].lastIndexOf("DTSTART:", 0) === 0){
			  				ligneDebut = lignes[i];
			  			} else if (lignes[i].lastIndexOf("DTEND:", 0) === 0){
			  				ligneFin = lignes[i];
			  			}
			  			i++;
			  		}
			  		
			  		var dateDebut = ligneDebut.split(":")[1];
			  		var dateFin   = ligneFin.split(":")[1];
			  		
			  		var heureDebut = dateDebut.substring(9,11);
			  		var heureFin   = dateFin.substring(9,11);
			  		
			  		var minuteDebut = dateDebut.substring(11,13);
			  		var minuteFin   = dateFin.substring(11,13);
			  		
			  		volumeHoraire.heures  += heureFin - heureDebut;
			  		volumeHoraire.minutes += minuteFin - minuteDebut;
			  		
			  		while(volumeHoraire.minutes >= 60){
			  			volumeHoraire.heures  ++;
			  			volumeHoraire.minutes -= 60;
			  		} 	
			  		
			  		// console.log(heureDebut+" "+minuteDebut+"-"+heureFin +" "+ minuteFin);
			  	}
			}
			  
			console.log("nombreEvenements : "+nombreEvenements);
			console.log("volumeHoraire : "+volumeHoraire.heures+" heure(s) et "+volumeHoraire.minutes+" minute(s).");
		}else{
			console.log("Le fichier est vide !");
		}
	});
}

var file = process.argv[2]; //on récupère le fichier passé en argument

if(file==null || file.split(".").pop()!="ics"){
	console.log("ERREUR : vous devez entrer un fichier .ICS à exploiter.");
}else{
	afficherVolumeHoraire(file);
}
